package com.yc.cinema.aop;

import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;
import java.lang.reflect.Proxy;

public class JDKProxy {

    /**
     * 代理方法
     *
     * @param obj 被代理对象
     * @return
     */
    public static Object proxy(Object obj) {
        // Proxy 代理类
        Object ret = Proxy.newProxyInstance(obj.getClass().getClassLoader(), // 类加载器
                obj.getClass().getInterfaces(), // 接口数组
                new InvocationHandler() {
                    @Override
                    public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
                        System.out.print("使用邮件");
                        // 执行业务方法
                        return method.invoke(obj, args);
                    }
                });
        return ret;
    }


}
